from ConfigParser import ConfigParser

class Variaveis():
    def __init__(self,pasta,nome):
        self.nome = str(nome)
        self.arquivo = pasta + '/config.ini'
        self.vars = ConfigParser()
        self.vars.read(self.arquivo)
        #self.lista = dict( 
        #        ip_servidor1 = self.pega('ip_servidor1'),
        #        porta = self.pega('porta'),
        #        con = self.pega('con')
        #        )

        
    def getdict(self):
        variaveis , valores = self.carregar()
        dicionario = dict()
        for i in range(len(variaveis)):
            elemento = {variaveis[i] : valores[i]}
            dicionario.update(elemento)
        return dicionario
    
    def carregar(self):
        variaveis = self.vars.options(self.nome)
        valores = []
        for i in range(len(variaveis)):
            valores.append(self.tiraesp(self.pega(variaveis[i])))
            variaveis[i] = self.tiraesp(variaveis[i])
        return variaveis , valores

    def gravar(self,variaveis,valores):
        a = open(self.arquivo)
        linhas = a.readlines()
        a.close()
        indice1 = 0
        indice2 = len(linhas)
        for i in range(indice2):
            if linhas[i] == '['+self.nome+']\n':
                indice1 = i
                break
        for i in range(indice1+1,indice2):
            if '[' in linhas[i]:
                indice2 = i
                break
        l1 = linhas[:indice1+1]
        l2 = linhas[indice2:]
        del linhas
        for i in range(len(variaveis)):
            variaveis[i] = self.poeesp(variaveis[i])
            valores[i] = self.poeesp(valores[i])
            linha = str('%s = %s\n' % (variaveis[i], valores[i]))
            l1.append(linha)
        l1.append('\n') 
        a = open(self.arquivo,'w')
        a.writelines(l1+l2)
        a.close()
        
        
        # a = open(self.arquivo,'w')
        # a.write('['+self.nome+']\n')
        # for i in range(len(variaveis)):
            # linha = str('%s = %s\n' % (variaveis[i], valores[i]))
            # a.write(linha)
        # a.close()
        
        
    def poeesp(self,word):
        return word.replace(':','/p/p')
    
    def tiraesp(self,word):
        return word.replace('/p/p',':')

    def pega(self,v):
        return self.vars.get(self.nome,v)

